//#include "common.h"
//#include "fast.h"
//#include <getMatch.h>
//#include "relocation.h"
//int main()
//{
//	Mat a;
//	a = imread("d.jpg");
//	Mat b;
//	b = imread("d1.jpg");
//	Mat mask;
//	cvtColor(b, mask, CV_BGR2GRAY);
//	for (size_t i = 0; i < mask.rows; i++)
//	{
//		auto p = mask.ptr<uchar>(i);
//		for (size_t j = 0; j < mask.cols; j++)
//		{
//			if (p[j] < 10)
//			{
//				p[j] = 0;
//			}
//		}
//	}
//	GaussianBlur(mask, mask, Size(3, 3), 1.2);
//	Fast fast(10, 500, a.size());
//	vector<KeyPoint> kpts1, kpts2;
//	Mat desp1, desp2;
//	Mat out;
//	fast.detect(a, kpts1, mask);
//	fast.detect(b, kpts2, mask);
//	Mat haha;
//	drawKeypoints(a, kpts1, haha);
//	drawKeypoints(b, kpts2, haha);
//	fast.compute(a, kpts1, desp1);
//	fast.compute(b, kpts2, desp2);
//	vector<DMatch> dmatches;
//	fast.match(a, kpts1, desp1, kpts2, desp2, dmatches);
//	vector<int> idx;
//	GetMatch::GetInliers(dmatches, idx, 10000);
//	GetMatch::GetMaskObj<DMatch>(dmatches, idx);
//	GetMatch getMatch();
//	vector<Point2f> inliers1, inliers2;
//	GetMatch::preparePoint2D(kpts1, kpts2, dmatches, inliers1, inliers2);
//	findHomography(inliers1, inliers2, mask,CV_RANSAC);
//	cout << norm(mask, NORM_L1)<<endl;
//	drawMatches(a, kpts1, b, kpts2, dmatches, out);
//	imshow("haha", out);
//	cvWaitKey(0);
//}